Lockstep computing systems are computing systems that run the same set of operations in parallel or in series on multiple processors and/or machines. Each processor and/or machine receives and executes the operations (including inputs such as code, bus operations and asynchronous events) in a stepwise fashion to generate the same inputs from ports, outputs to ports, changes to register values and changes to memory. Therefore, if any of the processors or machines fail during execution of a process (e.g., an application, service or other sequence of instructions), the process continues uninterrupted by the remaining machines and/or processors.
Lockstep computing systems provide fault tolerance (any fault in the system can be recovered from). However, lockstep computing hardware is much more expensive than standard computing hardware. This cost increases as the number of redundant processors and machines are included in a lockstep computing system. Therefore, despite the significant advantages of lockstep computing systems, they are not generally used due to cost restraints.